package com.papper.mng.controller.biz;

import com.papper.common.bean.biz.BizTemplateConfig;
import com.papper.common.bean.biz.BizTemplateGroup;
import com.papper.common.service.biz.BizTemplateConfigService;
import com.papper.common.service.biz.BizTemplateGroupService;
import com.papper.common.utils.tool.StringTool;
import com.papper.mng.controller.BaseAction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

@Controller
@RequestMapping("/template")
public class TemplateController extends BaseAction {
    @Autowired
    BizTemplateGroupService  bizTemplateGroupService;
    @Autowired
    BizTemplateConfigService bizTemplateConfigService;

    /**
     * 模板配置
     *
     * @return
     */
    @GetMapping(value = "")
    public String execute(Model model, Long gId, String sv) {
        // 模板组信息
        Example          example  = new Example(BizTemplateGroup.class);
        Example.Criteria criteria = example.createCriteria();
        if (!StringTool.isEmpty(sv)) {
            criteria.andLike("groupName", "%" + StringTool.nullToEmpty(sv) + "%");
        }
        example.setOrderByClause("id asc");
        List<BizTemplateGroup> groups = bizTemplateGroupService.find(example);
        if (groups == null || groups.isEmpty()) {
            model.addAttribute("gId", gId);
            model.addAttribute("sv", StringTool.nullToEmpty(sv));
            return render("template/index");
        }
        BizTemplateGroup parent = bizTemplateGroupService.findById(gId);
        if (parent == null && groups.size() > 0) {
            parent = groups.get(0);
        }
        model.addAttribute("groups", groups);
        model.addAttribute("parent", parent);
        model.addAttribute("gId", parent.getId());
        model.addAttribute("sv", StringTool.nullToEmpty(sv));
        // 模板配置信息
        Example configExample = new Example(BizTemplateConfig.class);
        configExample.createCriteria().andEqualTo("groupId", parent.getId());
        configExample.setOrderByClause("id asc");
        List<BizTemplateConfig> templateConfigs = bizTemplateConfigService.find(configExample);
        model.addAttribute("templateConfigs", templateConfigs);
        return render("template/index");
    }

    /**
     * 模板配置表_新增
     */
    @GetMapping(value = "/add")
    public String add_get(Model model, Long gId) {
        BizTemplateGroup group = bizTemplateGroupService.findById(gId);
        Assert.notNull(group, "输入归属组信息为空");
        model.addAttribute("group", group);
        return render("/template/add");
    }
}
